707eac8b30ef7574f15073aafab6239ea821d805,clc/modules/cluster-manager/src/main/java/com/eucalyptus/vm/VmInstance.java,VmInstance,addPermanentVolume,#String#Volume#,1386

Before Change


  }
  
  public void addPermanentVolume( final String deviceName, final Volume vol ) {
    final EntityTransaction db = Entities.get( VmInstance.class );
    try {
      final VmInstance entity = Entities.merge( this );
      final VmVolumeAttachment volumeAttachment = new VmVolumeAttachment( entity, vol.getDisplayName( ), deviceName, vol.getRemoteDevice( ), AttachmentState.attached.name( ), new Date( ), false );
      entity.bootRecord.getPersistentVolumes( ).add( volumeAttachment );
      db.commit( );
    } catch ( final RuntimeException ex ) {
      Logs.extreme( ).error( ex, ex );
      db.rollback( );

After Change


  }
  
  public void addPermanentVolume( final String deviceName, final Volume vol ) {
    final Function<Volume, Volume> attachmentFunction = new Function<Volume, Volume>( ) {
      public Volume apply( final Volume input ) {
        final VmInstance entity = Entities.merge( VmInstance.this );
        final Volume volEntity = Entities.merge( vol );
        final VmVolumeAttachment volumeAttachment = new VmVolumeAttachment( entity, vol.getDisplayName( ), deviceName, vol.getRemoteDevice( ), AttachmentState.attached.name( ), new Date( ), false );
        entity.bootRecord.getPersistentVolumes( ).add( volumeAttachment );
        return volEntity;
      }
    };
    Entities.asTransaction( VmInstance.class, attachmentFunction, VmInstances.TX_RETRIES );
  }
  
  /**